Front Matter
なんか、コンテンツの Markdown の先頭に構造化メタデータを記述できる仕組み、みたいな理解。あっている?ぼくが自分で運営している june29.jp で使っている Hugo に組み込まれているので、特に仕様を強く意識することもなく「こういう感じのもの」として活用してきた。あと、ぼくが触れてきたものでは Middleman も Front Matter を取り入れている。
Front Matter の発祥の地は Jekyll なのかしら…?
https://jekyllrb.com/docs/front-matter/
https://gohugo.io/content-management/front-matter/
https://middlemanapp.com/basics/frontmatter/
Jekyll のドキュメントを見ると「YAML を書けます」という感じ。Hugo では YAML の他に TOML と JSON も書ける。Middleman は YAML と JSON をサポートしている。
hr.icon
YAML の例
code:yaml-sample
---
a: 10
b:
- 20
- 21
- 22
c:
d: 30
---
# Title
Paragraph.
こんな感じで --- と --- の間に YAML を書く。
JSON の例
Middleman では ;;; とセミコロン 3 つで囲うことになっている。
code:json-sample-on-middleman
;;;
"layout": "custom",
"my_list": [
"one",
"two",
"three"
]
;;;
# Title
Paragraph.
Hugo では { と } で囲ってやるみたい。
code:json-sample-on-hugo
{
"layout": "custom",
"my_list": [
"one",
"two",
"three"
]
}
# Title
Paragraph.
TOML の例
Hugo では +++ で囲って書くことになっている。
code:toml-sample
+++
a = 10
b = 20, 21, 22
c
d = 30
+++
# Title
Paragraph.
hr.icon
これ!という仕様がなくて、いろんな実装のみが存在している状態…? Markdown の雰囲気と似ている。ぼくと同じような疑問を持った先人がいて Stack Overflow で質問を立てたりしていたみたいだな。
Is there a YAML front matter standard / validator? - Stack Overflow
自作のソフトウェアの中で Front Matter を扱う機運が出てきたのだけれど、なにが仕様なのかよくわからなくてテストコードを書く手が止まってしまったので、軽く調べていた。
ちなみに GitHub は YAML スタイルの Front Matter をパースしてくれるようで、下記の例のようにデータが HTML の table で表示される。JSON や TOML は対応されていないみたい。
https://github.com/june29/front-matter-examples/blob/master/yaml-example.md